In video compression, samples or coefficients are transformed block by block inside a macroblock. Referring to FIG. 1, a conventional 16 horizontal (H) by 16 vertical (V) luminance macroblock 20 is shown. Some video compression standards allow different transform partitions sizes mixed inside the macroblock 20 and different sub-partitions inside the 8H×8V partitions. Depending on the compression standard, the transform partitions/sub-partitions can have sizes of 8H×8V, 8H×4V, 4H×8V, or 4H×4V.
Referring to FIGS. 2A-2D, block diagrams of conventional block access orderings based on different block partitions/sub-partitions is shown. Partition/sub-partition 0 is transformed first, partition/sub-partition 1 is transformed second, and so on until the last partition/sub-partition (e.g., 3, 7 or 15) is transformed. Some video compression standards allow the transform size to change macroblock by macroblock and provide hardware to handle different transform sizes with the same performance. Furthermore, some video compression standards support different transform types (i.e., frame transform or field transform). For a frame transform, a block of every line is used in the transform. For a field transform, a block of every other line is used in the transform.
When a transform block size is four data points (i.e., samples or coefficients) in a horizontal direction, sets of four contiguous data points are entered into the transform. When the transform block size is eight data points in the horizontal direction, sets of 8 contiguous data points are entered into the transform.
What is desired is a memory organization that may access eight or more contiguous data points in each clock cycle, regardless transform block size and transform type.